Develop concept of a Cartesian product space and apply to games in strategic form#740
Merged
Develop concept of a Cartesian product space and apply to games in strategic form#740
Conversation
…rategic form. This creates an abstraction, CartesianProductSpace, which aims to separate out the computations related to representing a Cartesian product. This has always been implicit in the strategic form, but the core ideas apply equally to other situations (sequence form, some applications of pure behavior profiles). Underpinning this is that any element of a cartesian product space can be represented by an integer computed using mixed radix arithmetic. This then leads to simplifications in the internal representation of several objects: * PureStrategyProfile, which is now be characterised simply by an integer index. * StrategySupportProfile, which is characterised by the set of "digits" which are valid for each dimension. * StrategyContingencies, which iterates over the valid digits for each dimension. Implement PureStrategyProfile using indexes only. This changes PureStrategyProfile so that it stores only to the index of the strategy profile in the cartesian product of pure strategy sets. A map from players to strategies is no longer needed. Implement CartesianProductSpace abstraction Implement StrategySupportProfile as vectors of legal "digits" in indexing the Cartesian product space. Default initialisations Make StrategyContingencies header-only to facilitate possible inlining eventually. Rewrite strategycontingencies to use "odometer digit" abstraction. Tidy up some uses of StrategyContingencies Remove "frozen" strategies in contingencies; handle in support profiles instead. Remember to add iterator attributes for StrategyContingencies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.